package lib

// type Iterator struct {
// 	data  []int
// 	index int
// }

type IntIterator struct {
	*Iterator
	data []int
}

func IteratorForInt(data []int) *IntIterator {
	return &IntIterator{data: data, Iterator: &Iterator{len: len(data)}}
}

// func (i *Iterator) HasNext() bool {
// 	if i == nil || len(i.data) == 0 {
// 		return false
// 	}
// 	return i.index < len(i.data)
// }

func (i *IntIterator) Next() int {
	defer func() {
		i.Iterator.index++
	}()
	return i.data[i.Iterator.index]
}
